Payment Types

Once the payment request is processed, the payments (transactions) are stored with AltaPay and can be categorized as follows, depending on the payment request type (see Payment request types), payment method, and payment provider (see Payment methods and providers).

Payment type Description
Final payments

The payment is completely finalized. Once the payment flow for a final payment has been completed by the customer, you as the merchant are sure that you have coverage for your order.

This will be communicated back to you via the Callback URL (Ok) page.

Open payments

The payment is not completed, but is in an open state, and will not be finalized until a later stage, when your customer has left the payment flow.

  1. Payment details are submitted to the acquirer.
  2. The acquirer communicates with AltaPay.
  3. AltaPay communicates back to you (the merchant) on the Callback URL (open) page.
  4. At this point, we recommend that you advise the customer that the order will be processed when the payment is completed. This typically takes the form of "Your order has been received and will be processed shortly." or something similar. You might also want to put a timer on the order so that you are not locking up your stock for too long if the payment is never completed. AltaPay does not apply a timeout.
  5. When the payment has been concluded, we will communicate its success/failure to you via the Callback URL (notification) page.
  6. If the payment was successful, you can deliver the goods or services.
  7. As time has elapsed during the payment processing, the customer's session will no longer be active, so they will not see the response to that callback. We advise that you notify them by e-mail that the payment has been received and the order will be processed, or inform them of any problem.

    Bear in mind that there is a risk that the goods are out of stock once the payment is completed. You should set up business logic to deal with this scenario.

Reservation payments

If the payment flow is completed, and the order is placed, but you cannot immediately fulfilthe order, the payment can be reserved.

In most situations, you would like to receive a payment when the order is placed. If you have not yet fulfilled the order, the payment should be a "reservation". This enables you to ensure that the items ordered are on stock, take a second look at fraud results, and so on, before the order is fulfilled. Once you are ready to fulfil the order, you can "capture" the payment.

This is also referred to as two-step-payment, and the AltaPay Payment Gateway defaults to this behaviour whenever possible.

When you are ready to fulfilthe order, the payment can be captured, using, for example, the captureReservation method, or using the Merchant Information Interface.

Pre-captured payments

Some payment mechanisms do not support making a reservation first and then capturing it later. Instead, when the payment flow is completed, the money is already on its way to your merchant/bank account. From a business logic perspective this means that you will not have to "capture" these payments when you fulfil the order. However, if you decide not to do so, you will have to make a refund.

When the payment is successful, we post back to the Callback URL (Ok) page and the require_capture parameter tells whether you need to capture this payment upon fulfilling the order.

If your business decisions are made based on the content of the xml parameter being posted back, you should look at the <CapturedAmount> element of the XML response, as this will show how much has already been captured.

For more information, see API Response structure (XML).
Multi-capture payments

Some payment methods let you capture multiple payments from a single reservation. This is useful for fulfilling an order in multiple steps, for example, where not all items of the order can be delivered immediately.

To handle these payments correctly, you should review the information in the xml parameter posted back to Callback URL (Ok) page. In this you will find an element called <SupportsMultipleCaptures> which is either true or false. For more information, see API Response structure (XML).

Refundable/Non-refundable payments

Some payment methods allow you to partially or completely refund the payment amount.

The <SupportsRefunds> element of the XML response to the Callback URL (Ok) page indicates whether refunds can be made for a specific payment. For more information, see API Response structure (XML).

Releaseable payments

If a payment is reserved, but the order cannot be fulfilled, you can release the payment. Not all payment methods support this.

The <SupportsRelease> element of the XML response to the Callback URL (Ok) page indicates whether a specific payment reservation can be released. For more information, see API Response structure (XML).